x86 hvm: Provide x2APIC identifier in CPUID leaf 0xb.
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 19 May 2009 00:25:59 +0000 (01:25 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 19 May 2009 00:25:59 +0000 (01:25 +0100)
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
xen/arch/x86/hvm/hvm.c

index 000a70d9acec23031f80a24ab3552823a14bef06..15afec63e65b2e35229fced6d2d677121f0f2f1c 100644 (file)
@@ -1685,13 +1685,19 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
 
     domain_cpuid(v->domain, input, *ecx, eax, ebx, ecx, edx);
 
-    if ( input == 0x00000001 )
+    switch ( input )
     {
+    case 0x1:
         /* Fix up VLAPIC details. */
         *ebx &= 0x00FFFFFFu;
         *ebx |= (v->vcpu_id * 2) << 24;
         if ( vlapic_hw_disabled(vcpu_vlapic(v)) )
             __clear_bit(X86_FEATURE_APIC & 31, edx);
+        break;
+    case 0xb:
+        /* Fix the x2APIC identifier. */
+        *edx = v->vcpu_id * 2;
+        break;
     }
 }